function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}

function generateUUID() {
    var d = new Date().getTime();
    if(window.performance && typeof window.performance.now === "function"){
        d += performance.now(); //use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
}
//当前验证码id
var imageCodeId = ""
//之前验证码id
var preImageCodeId = ""
// 生成一个图片验证码的编号，并设置页面中图片验证码img标签的src属性
function generateImageCode() {
    //1.生成验证码的编码
    imageCodeId = generateUUID()
    //2.设置验证码的标签的src
    //拼接验证码图片的路径,将生成的验证码id传给服务器
    var url = '/api/v1.0/imagecode?cur=' + imageCodeId +'&pre=' + preImageCodeId
    //设置图片验证码的标签src所对应的url
    $(".image-code>img").attr("src",url)
    //记录当前的图片验证码id
    preImageCodeId = imageCodeId

}

function sendSMSCode() {
    // 校验参数，保证输入框有数据填写
    $(".phonecode-a").removeAttr("onclick");
    var mobile = $("#mobile").val();
    if (!mobile) {
        $("#mobile-err span").html("请填写正确的手机号！");
        $("#mobile-err").show();
        $(".phonecode-a").attr("onclick", "sendSMSCode();");
        return;
    } 
    var imageCode = $("#imagecode").val();
    if (!imageCode) {
        $("#image-code-err span").html("请填写验证码！");
        $("#image-code-err").show();
        $(".phonecode-a").attr("onclick", "sendSMSCode();");
        return;
    }
    var params = {
        "mobile": mobile,
        "image_code": imageCode,
        "image_code_id": imageCodeId
    }

    // TODO: 通过ajax方式向后端接口发送请求，让后端发送短信验证码
    $.ajax({
        //ajax请求的url
        url: "/api/v1.0/sms",
        //请求方法，method也行
        type: "post",
        //指定请求内容的类型
        contentType: "application/json",
        headers:{
            "X-CSRFToken": getCookie("csrf_token")
        },
        //发送给后段的数据
        data: JSON.stringify(params),
        //请求回调
        success: function (resp) {
            if (resp.errno == "0"){
                //代表发送成功
                //倒计时
                //1000　1000ms跳一次，即１s跳一次，60　跳多少秒
                var num = 60
                var t = setInterval(function () {
                    if (num==1)
                    {
                        //倒计时完成
                        //关闭计时器
                        clearInterval(t)
                        $(".phonecode-a").html("获取验证码")

                    }else {
                        num -= 1
                        //更新按钮上的内容
                        $(".phonecode-a").html(num+"秒之后发送")
                    }
                },1000, 60)
            }else{
                alert(resp.errmsg)
                $(".phonecode-a").attr("onclick", "sendSMSCode();");

            }
        }

    })


}

$(document).ready(function() {
    generateImageCode();  // 生成一个图片验证码的编号，并设置页面中图片验证码img标签的src属性
    $("#mobile").focus(function(){
        $("#mobile-err").hide();
    });
    $("#imagecode").focus(function(){
        $("#image-code-err").hide();
    });
    $("#phonecode").focus(function(){
        $("#phone-code-err").hide();
    });
    $("#password").focus(function(){
        $("#password-err").hide();
        $("#password2-err").hide();
    });
    $("#password2").focus(function(){
        $("#password2-err").hide();
    });

    // TODO: 注册的提交(判断参数是否为空)
    $(".form-register").submit(function (e) {
        //阻止默认提交事件
        e.preventDefault()
        //实现自己的post请求逻辑
        var mobile = $('#mobile').val()
        var phonecode = $('#phonecode').val()
        var password = $('#password').val()
        var password2 = $('#password2').val()



        if (!mobile){
            //弹出提示
            $('#mobile-err>span').html("请输入手机号")
            $('#mobile-err').show()
            return
        }
        if (!phonecode) {
        $("#phone-code-err span").html("请填写短信验证码！");
        $("#phone-code-err").show();
        return;
        }
        if (!password) {
            $("#password-err span").html("请填写密码!");
            $("#password-err").show();
            return;
        }
        if (password != password2) {
            $("#password2-err span").html("两次密码不一致!");
            $("#password2-err").show();
            return;
        }
        var params = {
            "mobile": mobile,
            "phonecode": phonecode,
            "password": password,

        }
         $.ajax({
            //ajax请求的url
            url: "/api/v1.0/users",
            //请求方法，method也行
            type: "post",
            //指定请求内容的类型
            contentType: "application/json",
            headers:{
                "X-CSRFToken": getCookie("csrf_token")
            },
            //发送给后段的数据
            data: JSON.stringify(params),
            //请求回调
            success: function (resp) {
               if (resp.errno == "0"){
                   //跳转到首页
                   location.href = "/index.html"
               }else {
                   $("#password2-err span").html(resp.errmsg);
                   $("#password2-err").show();
               }
        }

    })


    })
})
